package org.javaqq.face.main.group.meta;

import java.util.ArrayList;
import java.util.List;

import org.javaqq.face.main.group.inter.MetaGroupElementInter;
import org.javaqq.face.main.group.inter.MetaGroupInter;

public class MetaGroupElementImpl implements MetaGroupElementInter {
	private String groupElementID;
	private String parentGroupElementID;
	private String rootGroupElementID;
	private String groupElementName;
	private List metaGoupList=new ArrayList();
	private List elementGroup=new ArrayList();

	@Override
	public String getGroupElementID() {
		return groupElementID;
	}

	@Override
	public void setGroupElementID(String groupElementID) {
		this.groupElementID=groupElementID;
	}

	@Override
	public String getParentGroupElementID() {
		return parentGroupElementID;
	}

	@Override
	public void setParentGroupElementID(String groupElementID) {
		this.parentGroupElementID=parentGroupElementID;
	}

	@Override
	public String getRootGroupElementID() {
		return rootGroupElementID;
	}

	@Override
	public void setRootGroupElementID(String rootGroupElementID) {
		this.rootGroupElementID=rootGroupElementID;
	}

	@Override
	public String getGroupElementName() {
		return groupElementName;
	}

	@Override
	public void setGroupElementName(String groupElementName) {
		this.groupElementName=groupElementName;
	}

	@Override
	public List getMetaGoupList() {
		return metaGoupList;
	}

	@Override
	public void addMetaGroup(MetaGroupInter metaGroup) {
		this.metaGoupList.add(metaGroup);
	}

	@Override
	public void removeMetaGroup(String groupID) {
		this.metaGoupList.remove(getMetaGroup(groupID));
	}

	@Override
	public MetaGroupInter getMetaGroup(String groupID) {
		MetaGroupInter group=null;
		for(int i=0;i<metaGoupList.size();i++){
			MetaGroupInter metaGroup=(MetaGroupInter) metaGoupList.get(i);
			if(metaGroup.getGroupID().equals(groupID)){
				group=metaGroup;
				break;
			}
		}
		return group;
	}

	@Override
	public List getElementGroup() {
		return elementGroup;
	}

	@Override
	public void addElementGroup(MetaGroupElementInter metaGroupElement) {
		this.elementGroup.add(metaGroupElement);
	}

	@Override
	public void removeMetaGroupElement(String groupElementID) {
		this.elementGroup.remove(getMetaGroupElement(groupElementID));
	}

	@Override
	public MetaGroupElementInter getMetaGroupElement(String groupElementID) {
		MetaGroupElementInter group=null;
		for(int i=0;i<elementGroup.size();i++){
			MetaGroupElementInter metaGroup=(MetaGroupElementInter) elementGroup.get(i);
			if(metaGroup.getGroupElementID().equals(groupElementID)){
				group=metaGroup;
				break;
			}
		}
		return group;
	}

}
